Virtual storage system and method of sharing electronic documents within the virtual storage system

ABSTRACT

A virtual storage system and a method of sharing electronic documents within a virtual storage system that includes at least one processor that processes a plurality of electronic documents received from an external system, receives from the user computing device, a request for sharing an electronic document of the plurality of electronic documents, and input information including download information and expiration information corresponding to the electronic document, as input by a user, and creates at least one share link corresponding to the electronic document based on the input information, for sharing the electronic document with a recipient. The virtual storage system further includes a plurality of redundant physical storage devices in data communication with the at least one processor each storing the electronic documents and the at least one share link created.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 13/752,008 filed on Jan. 28, 2013, which relates to U.S. patentapplication Ser. No. 13/751,982 entitled “Virtual Storage System andMethod of Copying Electronic Documents into the Virtual Storage System”by Ronald M. Daly, Jr. et al. filed on Jan. 28, 2013, now U.S. Pat. No.9,552,496; U.S. patent application Ser. No. 13/752,023 entitled “VirtualStorage System and File Encryption Methods” by Ronald M. Daly, Jr. etal. filed on Jan. 28, 2013, now U.S. Pat. No. 9,003,183; and U.S. patentapplication Ser. No. 13/752,043 entitled “Virtual Storage System andFile Storing Method” by Ronald M. Daly, Jr. et al. filed on Jan. 28,2013, the entire disclosures of which are incorporated herein byreference.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to a virtual storage system. Moreparticularly, the present invention relates to a virtual storage systemand a method of sharing electronic documents within the virtual storagesystem.

Description of the Related Art

Virtual storage systems have become a popular alternative for storingfiles, thereby eliminating the need to install physical storage devicesand minimizing file storage costs. A virtual storage system is an onlinestorage system where data is stored in virtual storage pools. The poolsare hosted by third parties that operate large data centers. The thirdparties virtualize resources in servers and present the resources asvirtual storage pools for users to store files, for example. The virtualstorage system is accessed through a web application programminginterface (API), a gateway or a Web-based user interface (UI), forexample. A typical virtual storage system (e.g., a cloud-type storagesystem) has several disadvantages which create security concerns. Forexample, the storage location of the files stored therein may be unknownto both third party hosting companies and/or users of the virtualstorage system. In addition, the typical virtual storage system can beeasily accessed over a communication network (e.g., the Internet) usingsimple single-factor authentication processes for access thereof. Thetypical virtual storage system does not encrypt files that are stored ontheir servers which makes the files easily visible to internal employeesand hackers. Further, the typical virtual storage system is not Pcicompliant (PCI DSS) a proprietary information security standard fororganizations that handle cardholder information for the major debit,credit, prepaid, e-purse, ATM, and POS cards. Further, once any file isstored on the virtual storage system they become property of the virtualstorage system provider and are no longer user-owned; therefore thefiles can be used for other purposes, such as data mining without userpermission.

Online banking systems provide resources to enable users to conductbanking transactions electronically from a personal computer, forexample. These banking transactions include monitoring accounts,conducting money transfers, applying for loans, submitting loanpayments, etc. However, users are required to visit the bank in person,to conduct other transactions such as depositing important documentsinto a safe deposit box which is an individually secured container heldin a bank vault. The safe deposit box is used for storing valuablepossessions, such as jewelry, currency, marketable securities, andimportant documents (e.g., bank statements, wills, passports, propertydeeds, insurance policies, photographs and birth certificates). Bankpersonnel typically open the bank vault with a key and a user isrequired to produce an assigned key to open the safe deposit box.

Currently, online banking systems fail to allow users to store importantdocuments electronically, and also fail to allow users to retrieve, viewor share these documents electronically outside of the bank environment,when desired.

SUMMARY OF THE INVENTION

The present invention obviates the above-mentioned disadvantages byproviding a virtual storage system that implements a method of sharingelectronic documents with others as needed.

Further, the virtual storage system of present invention employs amulti-factor authentication process for verifying user access rights,via a specifically-designed application programming interface (API), forexample, that can be installed at a user computing device, therebyproviding a maximum security level of file storage for the user.

The virtual storage system of the present invention is also Pcicompliant following a proprietary information security standard to allowstorage of cardholder information for the major debit, credit card,prepaid, e-purse, ATM, and POS cards.

In addition, the virtual storage system locks each file with encryptionas it is uploaded or copied, and only the user-owner holds the key(i.e., access rights) to retrieve the file, thereby leaving ownership ofthe file with the user-owner at all times and providing extra securityprotection from unauthorized individuals.

The present invention provides a virtual storage system in datacommunication with a user computing device via a communication networkthat includes at least one processor configured to process a pluralityof electronic documents received from an external system, receive fromthe user computing device, a request for sharing an electronic documentof the plurality of electronic documents, and input informationincluding download information and expiration information correspondingto the electronic document, as input by a user, and create at least oneshare link corresponding to the electronic document based on the inputinformation, for sharing the electronic document with a recipient. Thevirtual storage system further includes a plurality of redundantphysical storage devices in data communication with the at least oneprocessor and each configured to store the electronic documents and theat least one share link created.

Further, the present invention is a method implemented by computersystem to effect the sharing of a plurality of electronic documentswithin a virtual storage system including at least one processor in datacommunication via a communication network with a user computing device,and a plurality of redundant storage devices. The method includesaccessing the virtual storage system via the user computing device,selecting and viewing an electronic document of the plurality ofelectronic documents, to be shared with a recipient, receiving from theuser computing device, a request for sharing the electronic document,determining, via the user, download information corresponding to theelectronic document to be shared, determining, via the user, expirationinformation corresponding to the downloading of the electronic documentto be shared, creating at least one share link corresponding to theelectronic document based on the download information and the expirationinformation, for sharing the electronic document with a recipient, andstoring, via the physical redundant storage devices, the electronicdocuments and the at least one share link created.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and a better understanding of the present invention willbecome apparent from the following detailed description of exampleembodiments and the claims when read in connection with the accompanyingdrawings, all forming a part of the disclosure of this invention. Whilethe foregoing and following written and illustrated disclosure focuseson disclosing example embodiments of the invention, it should be clearlyunderstood that the same is by way of illustration and example only andthe invention is not limited thereto, wherein in the following briefdescription of the drawings:

FIG. 1 is a block diagram of a virtual storage system that can beimplemented within one or more embodiments of the present invention.

FIG. 2 is a block diagram of a virtual storage system that can beimplemented within alternative embodiments of the present invention.

FIG. 3 is a block diagram of a virtual storage system that can beimplemented within alternative embodiments of the present invention.

FIG. 4 is a block diagram of a virtual storage system that can beimplemented within alternative embodiments of the present invention.

FIG. 5 is a block diagram of an exemplary computer to be implementedwithin one or more embodiments of the present invention.

FIG. 6 is a flowchart illustrating a method for sharing electronicdocuments within the virtual storage system according to one or moreembodiments of the present invention.

FIG. 7 is a flowchart illustrating a method for modifying or removing ashare link according to one or more embodiments of the presentinvention.

FIG. 8 is a screen shot of the virtual storage system that can beimplemented within one or more embodiments of the present invention.

FIG. 9 is a screen shot of a share link creation operation of the methodshown in FIG. 6 that can be implemented within one or more embodimentsof the present invention.

FIG. 10 is a screen shot of an active share link that can be implementedwithin one or more embodiments of the present invention.

FIG. 11 is a block diagram of an exemplary physical storage system forimplementation of the virtual storage system in accordance with one ormore embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of various embodiments of the present invention. It willbe apparent, however, to one skilled in the art that embodiments of thepresent invention may be practiced without some of these specificdetails. In other instances, well-known structures and devices are shownin block diagram form.

Specific details are given in the following description to provide athorough understanding of the embodiments. However, it will beunderstood by one of ordinary skill in the art that the embodiments maybe practiced without these specific details. For example, systems,networks, processes, and other components may be shown as components inblock diagram form in order not to obscure the embodiments inunnecessary detail. Also, it is noted that individual embodiments may bedescribed as a process which is depicted as a flowchart, a flow diagram,a data flow diagram, a structure diagram, or a block diagram. Although aflowchart may describe the operations as a sequential process, many ofthe operations can be performed in parallel or concurrently. Inaddition, the order of the operations may be re-arranged. A process isterminated when its operations are completed, but could have additionalsteps not included in a figure. A process may correspond to a method, afunction, a procedure, a subroutine, a subprogram, etc. When a processcorresponds to a function, its termination can correspond to a return ofthe function to the calling function or the main function.

Furthermore, embodiments may be implemented by hardware, software,firmware, middleware, microcode, hardware description languages, or anycombination thereof. When implemented in software, firmware, middlewareor microcode, the program code or code segments to perform the necessarytasks may be stored in a machine readable medium. A processor(s) mayperform the necessary tasks.

The present invention as will be described in greater detail belowprovides a method of sharing electronic documents, (e.g., a will, a deedor a banking statement) within a virtual storage system and systemimplementing the method. The present invention provides variousembodiments as described below. However it should be noted that thepresent invention is not limited to the embodiments described herein,but could extend to other embodiments as would be known or as wouldbecome known to those skilled in the art.

FIG. 1 is a block diagram of a virtual storage system implemented withinone or more embodiments of the present invention. In FIG. 1, a user at auser computing device 50 is configured to access, via a communicationnetwork 60, an external system i.e., an online document retrieval andstorage system such as a banking system 70, to perform online bankingtransactions, such as viewing bank accounts and bank statements,applying for loans, and other transactions. According to one or moreembodiments, the user computing device 50 includes at least one of amobile phone or smart phone, a personal computer or laptop, a personaldigital assistant (PDA), or tablet. The present invention is not limitedto any particular type of user computing device 50, and may varyaccordingly.

The user accesses the banking system 70 by inputting input dataincluding identification and log-in information such as a user ID andpassword via a user interface (UI) of the user computing device 50. Oncethe identification/log-in information is received at a bankingapplication of the banking system 70, the banking system 70 retrievesthe user's banking information and displays the banking information viaa display of the user computing device 50. The banking system 70 isconfigured to receive the input data and provide the user withelectronic documents (e.g., bank statements) in webpage format or anyother format over the communication network 60. The banking system 70communicates via a communication network 80, with a virtual storagesystem 100 described in detail below.

The communication networks 60 and 80 include a wired or wireless networkfor data communication. The data communication across the communicationnetworks 60 and 80 is achieved by using web services technologyincluding for example, Web services Description Language (WSDL). Thecommunication networks 60 and 80 may include any subsystem forexchanging data such as the Internet, intranet, extranet, wide areanetwork (WAN), local area network (LAN), Restful web services,JAVAScript Object Notation (JSON), Extensible Mark-up Language(XML)-based communication network, Simple Object Access Protocol(SOAP)-based Services and satellite communication network. Further, thecommunication networks 60 and 80 can be other types of networks such asinteractive television (ITV). According to one or more embodiments, thecommunication networks 60 and 80 may be the same or different types ofnetworks.

The virtual storage system 100 is a user-specific storage system whichallows each user to have a secure access to their files stored withinthe virtual storage system 100. In addition, the virtual storage system100 encrypts each electronic document as it is retrieved from theexternal system, and only the user-owner can access the electronicdocument thereby leaving ownership of the files within the virtualstorage system 100 with the user-owner at all times.

According to one or more embodiments, the virtual storage system 100includes a web interface 122 for interfacing with the external system(e.g., the banking system 70) over the communication network 80. The webinterface 122 provides secure connection to the virtual storage system100. According to one or more embodiments, the web interface 122 is aspecifically-designed application programming interface (API), forexample, which performs authentication of the user or the externalsystem (e.g., the banking system 70) at multiple levels. A secureconnection is made between the banking system 70 and the virtual storagesystem 100 on a transport layer level, for example. According to one ormore embodiments, a transport layer security (TLS) or secure socketslayer (SSL) cryptographic protocol may be employed to provide securecommunication over the communication networks 60 and 80. According toone or more embodiments, the web interface 122 is a web applicationprogramming interface (API), a gateway or a Web-based user interface(UI), for example.

According to one or more embodiments, the virtual storage system 100 isPci compliant to allow storage of cardholder information for majordebit, credit, prepaid, e-purse, ATM and POS cards.

The virtual storage system 100 further includes at least one processor124 for receiving information including requests from the user at thebanking system 70 and processing the requests, such as storing andretrieving electronic documents. The virtual storage system 100 furtherincludes at least one storage server 125 comprising a plurality ofphysical storage devices 126 for storing files such as electronicdocuments, audio files, photographs, movies, and images received fromthe user via the banking system 70. According to an embodiment of thepresent invention, the files can be stored in any format, for example,Hyper Text Markup Language (HTML), portable document format (PDF) or anyother suitable format. The virtual storage system 100 acts as a safedeposit box for receiving and securely storing the files received fromthe user via the banking system 70. Although only one processor 124 andtwo storage devices 126 are shown, the present invention is not limitedhereto, and may vary accordingly.

As shown in FIG. 1, the virtual storage system 100 includes a webinterface (e.g., the web interface 122) however the present invention isnot limited to this particular configuration, and may vary accordingly.

FIGS. 2 through 4 illustrate alternative configurations of the virtualstorage system 100, and communication between the virtual storage system100, the external system (e.g., the banking system 70), and/or the usercomputing device 50 according to other embodiments of the presentinvention that may be implemented. Some of the components shown in FIGS.2 through 4 are the same as the components discussed above withreference to FIG. 1 therefore a detailed description of these componentsis omitted.

As shown in FIG. 2, in an alternative embodiment, the banking system 70includes a web interface 130 configured to interface the banking system70 with the virtual storage system 100 over the communication network80. The web interface 130 functions in a similar manner as the webinterface 122 of the virtual storage system 100 therefore in thisembodiment, the web interface 122 of the virtual storage system 100 isomitted.

As shown in FIG. 3, in another alternative embodiment, the usercomputing device 50 includes a web application 150 (e.g., a web API) forconnecting to the banking system 70 and the virtual storage system 100indirectly through the banking system 70. The web application 150 is aninternet-enabled application, for example, that has specificfunctionality for the user computing device 50 (e.g., a mobile phone).The web application 150 is accessed through a web browser of the usercomputing device 50 and does not require downloading and installingthereof onto the user computing device 50.

As shown in FIG. 4, in yet another alternative embodiment, the usercomputing device 50 includes a native application 160 for connectingdirectly to web services (i.e., the processor 124) of the virtualstorage system 100. The native application 160 is directly installed onthe user computing device 50 to allow the user to gain direct access tothe virtual storage system 100. The native application 160 is aspecifically-designed API for accessing the virtual storage system 100.For example, if the user computing device 50 is a tablet, the tablet mayinclude a tablet API for directly accessing the web services of thevirtual storage system 100. Therefore, in this embodiment, the webinterface 130 of the banking system 70 as shown in the embodimentillustrated in FIG. 2; and the web interface 122 of the virtual storagesystem 100 as shown in FIG. 3 are omitted.

According to one or more embodiments, the native application 160 mayinclude a multi-factor authentication process to be performed at manylevels to enable a user to gain direct access to the virtual storagesystem 100 from the user computing device 50. The multi-factorauthentication process may include steps such as sending logininformation (e.g., user ID and password information) in a correspondence(e.g., a text message or email) to the user, and providing a time-basedone-time password system to the user via a third party.

According to another embodiment, a single-factor authentication processmay be used to gain access to the virtual storage system 100 via theexternal system (e.g., the banking system 70) since the external systemand the virtual storage system 100 communicate via a secure connectionon the communication network 80.

It should be noted that the virtual storage system 100 as shown in FIGS.1 through 4 is implemented on a physical storage system 1100 such asthat illustrated in FIG. 11.

As shown in FIG. 11, the physical storage system 1100 includes aplurality of host adapters (CHA) 1110, disk adapters (DKA) 1120, cachememories (CACHE) 1130, shared memories (SM) 1140, and hard disk drives(HDD) 1150 connected with each other via common paths 1160 andconnection lines 1170. Each of the hard disk drives (HDD) 1150 isconnected to two disk adapters 1120, for example, using differentconnection lines 1170. The host adapters 1110 control data transferbetween host computers 1180, the cache memories 1130 and the hard diskdrives 1150. The cache memories 1130 temporarily store data receivedfrom the host computer 1180 and data read from the hard disk drives1150. The shared memories 1140 are shared between the host adapters 1110and the disk adapters 1120. The present invention is not limited to anyparticular number of host adapters 1110, disk adapters 1120, cachememories 1130, shared memories 1140 and hard disk drives 1150, and mayvary accordingly. The physical storage system 1100 is one example of aphysical storage system for which the virtual storage system can beimplemented thereon. The present invention is not limited to aparticular configuration of the physical storage system. According toother embodiments, the hard disk drives (HDD) 1150 can be replaced witha flash storage, RAM disks or rotated disk drives, for example. The hostcomputers 1180 can be the processor 124 or a separate computer, forexample. Further, the virtual storage system 100 can be implemented onany type of storage system such as a network-attached storage (NAS), astorage area network (SAN), or a distributed memory array.

Further, according to one or more embodiments, the physical storagedevices of the physical storage system 1100 as described above can beconfigured in a RAID (Redundant Array of Independent Disks)configuration. Further, the reliability of the data stored in thestorage devices 126 of the virtual storage system 100 can be stored in aredundant manner in redundant data centers using mirroring, remote copy,or the like. The use of redundant storage devices enables the datastored to be duplicated thereby preventing data loss.

When a user accesses the banking system 70 via a bank server, the usercan be automatically directed to the virtual storage system 100 whendesired.

As shown in FIGS. 1 through 4, the user computing device 50, bankingsystem 70 and virtual storage system 100 can be connected with eachother via the communication networks 60 and 80. According to oneembodiment, the user computing device 50 may occasionally connect to thecommunication network 60 while the banking system 70 and the virtualstorage system 100 may maintain a connection to the communicationnetworks 60 and 80. Further, in FIG. 4, the user computing device 50 andthe virtual storage system 100 are in direct communication with eachother over the communication network 80.

According to alternative embodiments, the virtual storage system 100 canbe included within the banking system 70 or the user computing device 50as installable software.

FIG. 5 is a block diagram of an exemplary computing device 500illustrating components of the computing device 50, the banking system70 and the virtual storage system 100 shown in FIG. 1. As shown in FIG.5, the computing device 500 includes various components for inputting,outputting, storing and processing data. The computing device 500includes a processor 505 for performing tasks including executing one ormore applications, retrieving data from a storage device e.g., storage506, and/or outputting data. The processor 505 can be connected to aRandom access memory (RAM) module 508 wherein application data and/orinstructions may be temporarily stored. The computing device 500 canfurther includes a Read Only Memory (ROM) 509 configured to allow datastored thereon to persist after the computing device 500 is turned offand is used for storing an operating system (OS) of the computing device500. The storage device 506 may also provide storage for data files andmay include computer readable mediums e.g., disk drives, optical storagemediums e.g., CD ROM drives, magnetic tape storage systems, and flashmemory. The processor 505 is configured to retrieve an application fromthe storage 506 and store the instructions associated with theapplication in the RAM module 508, while the processor 505 is executingthe application. The computing device 500 further includes outputdevices e.g., a display device 510, and a speaker 512, for outputtingvisual and audio data via a display adapter 514 and an audio adapter515. Further, the computing device 500 includes input devices e.g., akeyboard 516, a storage media drive 518, and microphone each having anassociated adapter 519 for converting the input data into computerreadable data. The storage media drive 518 enables users to read andwrite data to and from the storage media.

Further, as shown in FIGS. 1 through 4, the user computing device 50includes one or more components for receiving and transmitting data overthe communication networks 60 and 80. For example, a network adapter 520is provided for communication with one or more computing devices over anIP network, for example, for transmission of data such as financial dataover the banking system 70. The network adapter 520 may includeinstructions associated with processing IP network packets and cellularnetwork packets. The components of the computing device 500 areconnected via a system bus 530.

FIG. 6 is a flowchart illustrating a method 600 for illustrating amethod of sharing electronic documents within the virtual storage system100 of FIG. 1, for example, according to one or more embodiments of thepresent invention. The method 600 is implemented in software modules forexecution by the user computing device 50, the banking system 70 and thevirtual storage system 100.

In method 600, the online document retrieval and storage system (e.g.,the banking system 70) receives input data from the user at the usercomputing device 50 for requesting access to online account information(e.g., banking information). At operation 602, the user accesses thevirtual storage system 100. According to embodiments of the presentinvention, the user can access the virtual storage system 100 directlyor indirectly via the banking system 70 (as shown in FIGS. 1 through 4).

From operation 602, the process continues to operation 604, where theuser selects and views an electronic document to be shared with arecipient, as desired by the user. The user views a plurality ofelectronic folders within the virtual storage system 100 and selects theelectronic document to be shared.

From operation 604, the process continues to operation 606, where theuser selects a share option to share the electronic document. The shareoption is selected by the user from a plurality of option tabs (e.g.,add document, create new folder, download document, rename document,delete document, move document, and share documents) available forselection, displayed to the user via the user display (e.g., display 514depicted in FIG. 5). From operation 606, the process continues tooperation 608 where the user views a share options dialog, to configurea share link for sharing the electronic document.

From operation 608, the process continues to operations 610 and 612,where the user determines and inputs input information, via the shareoptions dialog. According to one or more embodiments, the inputinformation includes download information and expiration informationcorresponding to the electronic document to be shared.

In operation 610, the user determines the download information.According to one or more embodiments, the user determines a number oftimes the electronic document can be downloaded by the recipient. Theuser can select from one (1) time to multiple times that the recipientcan download the electronic document. The number of times as selected bythe user is stored, to be included in the share link created.

In operation 612, the user then determines the expiration information.According to one or more embodiments, the user selects an expirationperiod for downloading the electronic document by the recipient. Forexample, the user can select a predetermined number of hours or daysbefore the share link is to expire. According to an embodiment of thepresent invention, the expiration period can be zero (0) days (i.e., noexpiration date) or one or more days, as desired by the user. Theexpiration period information is also stored, to be included in theshare link created.

From operation 612, the process continues to operation 614, where theshare link is created using the download information and the expirationinformation as selected by the user, and the share link createdcorresponds to the electronic document to be shared. The user then hasan option to either copy and paste share link created in a communication(e.g., email or text) to the recipient or generate the communication(e.g., email or text) directly within the virtual storage system, forsending the share link to the recipient.

According to an embodiment of the present invention, the virtual storagesystem 100 also enables a user to modify or remove any active sharelinks created. That is, any share links in an active state (i.e., anon-expired state)

FIG. 7 is a flowchart illustrating a method 700 for modifying orremoving a share link according to one or more embodiments of thepresent invention. As shown FIG. 7, a list of active share links isdisplayed to the user when desired. At operation 702, the user canselect an active share link from the list of active share links to bemodified or removed. From operation 702, the process continues tooperation 704, where the user then selects to modify or remove theactive share link, as desired. For example, if a user desires to set anew expiration period for an active share link, the user can select theactive share link to be modified, and modify accordingly. Alternatively,a user may remove (i.e. delete) the active share link and create a newshare link, if desired.

The present invention is described herein in terms of block components,screen shots, and optional selections and processing steps. It should beappreciated that the functional blocks may be realized by any number ofhardware and/or software components configured to perform the specifiedfunctions. For example, the present invention may employ variousintegrated circuits e.g., memory elements, processing elements, logicelements, look-up tables, and others which may perform the functionsunder the control of one or more processors or other control devices.The software components can be implemented with any programming orscripting language, with various algorithms implemented with datastructures, objects, processes, and other programming elements.

An exemplary process of the methods 600 and 700 of FIGS. 6 and 7 will bedescribed with reference to the screen shots shown in FIGS. 8 through10. Screen shots 800, 900 and 1000 shown in FIGS. 8 through 10,respectively, are implemented for example, via a web page for networktransmission. The web page may include standard HTML documents, andvarious forms JAVA® applets, active server pages (ASP), common gatewayinterface scripts (CGI), extensive markup language (SML), dynamic HTML,plugins, etc.

As shown in FIG. 8, the screen shot 800 for a user to access the virtualstorage system 100 is provided. As shown, a plurality of electronicfolders 802 is displayed to the user upon accessing the virtual storagesystem 100. The user selects one of the folders 802 to view and selectan electronic document 803 (e.g., a billing statement) to the shared.The user then selects the share option 804 to create a share linkcorresponding to the electronic document 803.

As shown in FIG. 9, a screen shot 900 includes a share option dialog 902displayed to the user wherein the user manipulates the share optiondialog 902 to configure a share link for sharing the electronic document803 selected (operation 608 of FIG. 6). The user first determinesdownload information 903, via the share options dialog 902 (operation610 of FIG. 6). In this embodiment, the user determines a number oftimes the electronic document 803 can be downloaded by the recipient. Asshown, the user may select between one or multiple number of times.According to other embodiments, the user may select a specific number oftimes for which the electronic document can be downloaded by therecipient. For example, the user may select that the electronic documentcan be downloaded a total of five (5) times.

Further, the user determines expiration information 904, via the shareoptions dialog 902 (operation 612 of FIG. 6). In this embodiment, theuser determines an expiration period for downloading the electronicdocument 803, by the recipient. As shown, the user may select anypredetermined number of days before the share link is to expire, forexample, zero (0) days (i.e., no expiration date) or one or more days.

After selecting the download information 903 and the expirationinformation 904, the user selects a create share link option 906, tothereby create a share link 910 (shown in FIG. 10) based on the downloadinformation and the expiration information, and corresponding to theelectronic document to be shared (operation 614 of FIG. 6).

FIG. 10 is a screen shot 1000 illustrates the share link 910 created bythe user. As shown, the download type, expiration date and downloadactivity corresponding to the share link 910 created, is displayed tothe user. A list of share links created by the user can be displayedwithin the share options dialog 902. The share links in the list areactive share links. According to other embodiments, the user may archiveand retrieve share links which have been expired for purposes ofrecordkeeping, for example. As shown in FIG. 10, the share link 910created is able to be copied or sent via links 1002 (operation 614 ofFIG. 6), or removed or modified via links 1004 (operations 702 and 704of FIG. 7) in the share options dialog 902.

In view of the above, the present method embodiment may therefore takethe form of a computer or controller implemented processes andapparatuses for practicing those processes. This disclosure can also beembodied in the form of computer program code containing instructionsembodied in tangible media, such as floppy diskettes, CD ROMs, harddrives, or any other computer-readable storage medium, wherein, when thecomputer program code is loaded into and executed by a computer orcontroller, the computer becomes an apparatus for practicing theinvention. This disclosure may also be embodied in the form of computerprogram code or signal, for example, whether stored in a storage medium,loaded into and/or executed by a computer or controller, or transmittedover some transmission medium, such as over electrical wiring orcabling, through fiber optics, or via electromagnetic radiation,wherein, when the computer program code is loaded into and executed by acomputer, the computer becomes an apparatus for practicing theinvention. When implemented on a general-purpose microprocessor, thecomputer program code segments configure the microprocessor to createspecific logic circuits. A technical effect of the executableinstructions is to implement the exemplary method described above.

According to one or more embodiments, a virtual storage system in datacommunication with a user computing device via a communication networkis provided. The virtual storage system comprises at least one processorconfigured to process a plurality of electronic documents received froman external system, receive from the user computing device, a requestfor sharing an electronic document of the plurality of electronicdocuments, and input information including download information andexpiration information corresponding to the electronic document, asinput by a user, and create at least one share link corresponding to theelectronic document based on the input information, for sharing theelectronic document with a recipient. The virtual storage system furtherincludes a plurality of redundant physical storage devices in datacommunication with the at least one processor and each configured tostore the electronic documents and the at least one share link created.

According to one or more embodiments, a method implemented by computersystem to effect the sharing of a plurality of electronic documentswithin a virtual storage system including at least one processor in datacommunication via a communication network with a user computing device,and a plurality of redundant storage devices is provided. The methodcomprises accessing the virtual storage system via the user computingdevice, selecting and viewing an electronic document of the plurality ofelectronic documents, to be shared with a recipient, receiving from theuser computing device, a request for sharing the electronic document,determining, via the user, download information corresponding to theelectronic document to be shared, determining, via the user, expirationinformation corresponding to the downloading of the electronic documentto be shared, creating at least one share link corresponding to theelectronic document based on the download information and the expirationinformation, for sharing the electronic document with a recipient, andstoring, via the physical redundant storage devices, the electronicdocuments and the at least one share link created.

According to one or more embodiments, a computer readable medium storingcomputer executable instructions that, when executed, cause a computingdevice to perform a method of sharing of a plurality of electronicdocuments within a virtual storage system including at least oneprocessor in data communication via a communication network with a usercomputing device, and a plurality of redundant storage devices isprovided. The method comprising accessing the virtual storage system viathe user computing device, selecting and viewing an electronic documentof the plurality of electronic documents, to be shared with a recipient,receiving from the user computing device, a request for sharing theelectronic document, determining, via the user, download informationcorresponding to the electronic document to be shared, determining, viathe user, expiration information corresponding to the downloading of theelectronic document to be shared, creating at least one share linkcorresponding to the electronic document based on the downloadinformation and the expiration information, for sharing the electronicdocument with a recipient, and storing, via the physical redundantstorage devices, the electronic documents and the at least one sharelink created.

While the invention has been described in terms of its preferredembodiments, it should be understood that numerous modifications may bemade thereto without departing from the spirit and scope of the presentinvention. It is intended that all such modifications fall within thescope of the appended claims.

We claim:
 1. A virtual storage system in data communication with a usercomputing device through an external system via a communication network,the virtual storage system comprising: at least one hardware processorconfigured to: process a plurality of electronic documents received fromthe external system; receive, from the user computing device, by a uservia a graphical user interface, a request for sharing a specifiedelectronic document with one or more specified recipients, inputinformation including download information and expiration informationcorresponding to the specified electronic document and the one or morespecified recipients, wherein the graphical user interface allows theuser to set the download information that includes a number of times thespecified electronic document is to be downloaded by each of the one ormore specified recipients, and the expiration information correspondingto the specified electronic document and each of the one or morespecified recipients; create at least one share link corresponding tothe one or more specified recipients based on the input information forsharing the specified electronic document; receive, from the usercomputing device, a selection of at least one share link from a list ofshare links; display download information, expiration information, anddownload activity corresponding to the selected at least one share link;and modify at least one of the download information or the expirationinformation of the selected at least one share link corresponding to thespecified electronic document and the one or more specified recipients,according to input by the user.
 2. The virtual storage system of claim1, further comprising: a web interface configured to interface thevirtual storage system with the external system and the user computingdevice, via at least one communication network.
 3. The virtual storagesystem of claim 1, wherein the external system comprises a web interfaceconfigured to interface the external system with the virtual storagesystem.
 4. The virtual storage system of claim 1, wherein the usercomputing device comprises a web application configured to interface theuser computing device with the virtual storage system, via the externalsystem.
 5. The virtual storage system of claim 1, wherein the externalsystem is an online document retrieval and storage system.
 6. Thevirtual storage system of claim 5, wherein the online document retrievaland storage system is a banking system.
 7. The virtual storage system ofclaim 1, wherein the expiration information comprises an expirationperiod for downloading the specified electronic document the by the oneor more specified recipients.
 8. The virtual storage system of claim 1,wherein the at least one share link created is configured to be copiedto a communication to the one or more specified recipients or acommunication is generated within the virtual storage system, forsending the at least one share link to the one or more specifiedrecipients.
 9. The virtual storage system of claim 1, wherein the atleast one processor is configured to remove the at least one share linkcreated based on an input by the user while in an active state.
 10. Thevirtual storage system of claim 1, wherein the at least one processor isconfigured to encrypt the specified electronic document received fromthe external system.
 11. The virtual storage system of claim 1, furthercomprising, a plurality of redundant physical storage devices in datacommunication with the at least one processor and each of the pluralityof redundant physical storage devices configured to store the specifiedelectronic document and the at least one share link created.
 12. Amethod implemented by a computer system for sharing of a plurality ofelectronic documents within a virtual storage system including at leastone hardware processor in data communication via a communication networkwith a user computing device, the method comprising: storing a specifiedelectronic document in the virtual storage system via an externalsystem; receiving, from the user computing device, a request for sharingthe specified electronic document with a one of more specifiedrecipients; processing download information corresponding to the one ofmore specified recipients and the specified electronic document to beshared based on input by a user via a graphical user interface, whereinthe download information includes a number of times the specifiedelectronic document is to be downloaded by the one or more specifiedrecipients; processing expiration information corresponding to each ofthe one or more specified recipients and the specified electronicdocument based on input by the user via the graphical user interface;creating at least one share link corresponding to the one or morespecified recipients based on the determined download information andexpiration information, for sharing the specified electronic document;processing a selection by the user, from a list of share links, at leastone share link based on input via the graphical user interface;displaying the selected at least one share link with downloadinformation, expiration information, and download activity correspondingto the selected at least one share link; and modifying at least one ofthe download information or the expiration information to the selectedat least one share link corresponding to the specified electronicdocument and the one or more specified recipients according to input bythe user.
 13. The method of claim 12, wherein the expiration informationcomprises an expiration period for downloading the specified electronicdocument by the one or more specified recipients.
 14. The method ofclaim 12, further comprising: copying the at least one share link to acommunication to the one or more specified recipients or generating acommunication to the one or more specified recipients within the virtualstorage system, for sending the at least one share link to the one ormore specified recipients.
 15. The method of claim 12, furthercomprising: removing the at least one share link while in an activestate.
 16. The method of claim 12, further comprising: encrypting thespecified electronic document.
 17. A non-transitory computer readablemedium storing computer executable instructions that, when executed,cause a computing device to perform operations comprising: storing aplurality of electronic documents within a virtual storage system via anexternal system; receiving, from a user computing device, a request forsharing a specified electronic document with one or more specifiedrecipients; determining, download information corresponding to the oneor more specified recipients and the specified electronic document to beshared based on input by a user via a graphical user interface, whereinthe download information includes a number of times the specifiedelectronic document is to be downloaded by the one or more specifiedrecipients; determining, expiration information corresponding to each ofthe one or more specified recipients and the specified electronicdocument to be shared based on input by the user via the graphical userinterface; creating at least one share link corresponding to the one ormore specified recipients based on the determined download informationand expiration information, for sharing the specified electronicdocument; processing a selection, from a list of share links, at leastone share link based on input by the user via the graphical userinterface; displaying the selected at least one share link with thedownload information, the expiration information, and download activitycorresponding to the selected at least one share link; and modifying atleast one of the download information or the expiration information tothe selected at least one share link corresponding to the specifiedelectronic document and the one or more specified recipients, accordingto input by the user.
 18. The non-transitory computer readable medium ofclaim 17, wherein the determining expiration information comprises:determining an expiration period for downloading the specifiedelectronic document by the one or more specified recipients.
 19. Thenon-transitory computer readable medium of claim 17, wherein theoperations further comprise: copying the at least one share link to acommunication to the one or more specified recipients or generating acommunication to the one or more specified recipients within the virtualstorage system, for sending the at least one share link to the one ormore specified recipients; or removing the at least one share link bythe user, while in an active state.
 20. The non-transitory computerreadable medium of claim 17, wherein the operations further comprise:encrypting the specified electronic document.
 21. The virtual storagesystem of claim 1, further comprising: an archival system configured toarchive share links for recordkeeping.
 22. The method for sharing anelectronic document within a virtual storage system of claim 12, furthercomprising: archiving share links for recordkeeping.